import graphlab
song_data = graphlab.SFrame('D:/coursera/song_data.gl/')
song_data
songs = song_data['song_id'].unique()
users = song_data['user_id'].unique()
print 'num_song: ', len(songs)
print 'num_user: ', len(users)
graphlab.canvas.set_target('ipynb')
song_data['song'].show()
train_data, test_data = song_data.random_split(0.8, seed=0)
popularity_model = graphlab.popularity_recommender.create(train_data,
user_id = 'user_id',
item_id = 'song')
popularity_model.recommend(users = [users[0]]) #给第一个用户做推荐
personalized_model = graphlab.item_similarity_recommender.create(train_data,
user_id = 'user_id',
item_id = 'song')
personalized_model.recommend(users = [users[0]])
personalized_model.get_similar_items([song_data['song'][0]])
personalized_model.get_similar_items([song_data['song'][-1]])
import matplotlib.pyplot as plt
%matplotlib inline
model_performance = graphlab.recommender.util.compare_models(test_data, [popularity_model, personalized_model], user_sample=.05)
model_performance1 = graphlab.compare(test_data, [popularity_model, personalized_model], user_sample=0.05)
graphlab.show_comparison(model_performance1, [popularity_model, personalized_model])